﻿using System;
namespace Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="Sanktsioon", Namespace="http://producers.etoimik.xtee.riik.ee/producer/etoimik", Target=typeof(Sanktsioon))]
    public class SanktsioonSerializer : global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.KohustisSerializer {
        
        public SanktsioonSerializer(ISanktsioon clazz) : 
                base(clazz) {
        }
        
        protected new ISanktsioon clazz {
            get {
                return ((ISanktsioon)(base.clazz));
            }
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            if (clazz.TyypKL!=null) {
                Writer.WriteStartElement("TyypKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.TyypKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LiikKL!=null) {
                Writer.WriteStartElement("LiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AlaLiikKL!=null) {
                Writer.WriteStartElement("AlaLiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AlaLiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldavPaevamaaradeArv!=null) {
                Writer.WriteStartElement("TaodeldavPaevamaaradeArv");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.TaodeldavPaevamaaradeArv))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudPaevamaaradeArv!=null) {
                Writer.WriteStartElement("MoistetudPaevamaaradeArv");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.MoistetudPaevamaaradeArv))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldavaidAastaid!=null) {
                Writer.WriteStartElement("TaodeldavaidAastaid");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.TaodeldavaidAastaid))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldavaidKuid!=null) {
                Writer.WriteStartElement("TaodeldavaidKuid");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.TaodeldavaidKuid))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldavaidPaevi!=null) {
                Writer.WriteStartElement("TaodeldavaidPaevi");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.TaodeldavaidPaevi))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldavaidTunde!=null) {
                Writer.WriteStartElement("TaodeldavaidTunde");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.TaodeldavaidTunde))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudAastaid!=null) {
                Writer.WriteStartElement("MoistetudAastaid");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.MoistetudAastaid))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudKuid!=null) {
                Writer.WriteStartElement("MoistetudKuid");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.MoistetudKuid))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudPaevi!=null) {
                Writer.WriteStartElement("MoistetudPaevi");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.MoistetudPaevi))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudTunde!=null) {
                Writer.WriteStartElement("MoistetudTunde");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.MoistetudTunde))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PohiKaristus!=null) {
                Writer.WriteStartElement("PohiKaristus");
                global::Xtee.Core.SerializationMetadata metaPohiKaristus = this.GetMetaData(clazz.PohiKaristus);
                Writer.WriteTypeAttribute(metaPohiKaristus.TypeQualifiedName.Namespace, metaPohiKaristus.TypeQualifiedName.Name);
                metaPohiKaristus.NewSerializer(clazz.PohiKaristus).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldudKatseajaAastaid!=null) {
                Writer.WriteStartElement("TaodeldudKatseajaAastaid");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.TaodeldudKatseajaAastaid))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldudKatseajaKuid!=null) {
                Writer.WriteStartElement("TaodeldudKatseajaKuid");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.TaodeldudKatseajaKuid))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TaodeldudKatseajaPaevi!=null) {
                Writer.WriteStartElement("TaodeldudKatseajaPaevi");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.TaodeldudKatseajaPaevi))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudKatseajaAastaid!=null) {
                Writer.WriteStartElement("MoistetudKatseajaAastaid");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.MoistetudKatseajaAastaid))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudKatseajaKuid!=null) {
                Writer.WriteStartElement("MoistetudKatseajaKuid");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.MoistetudKatseajaKuid))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MoistetudKatseajaPaevi!=null) {
                Writer.WriteStartElement("MoistetudKatseajaPaevi");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.MoistetudKatseajaPaevi))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AluseksOlevadSeaduseSatted!=null) {
                Writer.WriteStartElement("AluseksOlevadSeaduseSatted");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("SeaduseSate", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.AluseksOlevadSeaduseSatted.Count);
                for (int x = 0; ((clazz.AluseksOlevadSeaduseSatted != null) 
                            && (x < clazz.AluseksOlevadSeaduseSatted.Count)); x = (x + 1)) {
                    if (clazz.AluseksOlevadSeaduseSatted[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaAluseksOlevadSeaduseSatted = this.GetMetaData(clazz.AluseksOlevadSeaduseSatted[x]);
                        Writer.WriteTypeAttribute(metaAluseksOlevadSeaduseSatted.TypeQualifiedName.Namespace, metaAluseksOlevadSeaduseSatted.TypeQualifiedName.Name);
                        metaAluseksOlevadSeaduseSatted.NewSerializer(clazz.AluseksOlevadSeaduseSatted[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AluseksOlevadSyyteosyndmused!=null) {
                Writer.WriteStartElement("AluseksOlevadSyyteosyndmused");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Syyteosyndmus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.AluseksOlevadSyyteosyndmused.Count);
                for (int x = 0; ((clazz.AluseksOlevadSyyteosyndmused != null) 
                            && (x < clazz.AluseksOlevadSyyteosyndmused.Count)); x = (x + 1)) {
                    if (clazz.AluseksOlevadSyyteosyndmused[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaAluseksOlevadSyyteosyndmused = this.GetMetaData(clazz.AluseksOlevadSyyteosyndmused[x]);
                        Writer.WriteTypeAttribute(metaAluseksOlevadSyyteosyndmused.TypeQualifiedName.Namespace, metaAluseksOlevadSyyteosyndmused.TypeQualifiedName.Name);
                        metaAluseksOlevadSyyteosyndmused.NewSerializer(clazz.AluseksOlevadSyyteosyndmused[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AluseksOlevadSyydistusPunktid!=null) {
                Writer.WriteStartElement("AluseksOlevadSyydistusPunktid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("SyydistusPunkt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.AluseksOlevadSyydistusPunktid.Count);
                for (int x = 0; ((clazz.AluseksOlevadSyydistusPunktid != null) 
                            && (x < clazz.AluseksOlevadSyydistusPunktid.Count)); x = (x + 1)) {
                    if (clazz.AluseksOlevadSyydistusPunktid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaAluseksOlevadSyydistusPunktid = this.GetMetaData(clazz.AluseksOlevadSyydistusPunktid[x]);
                        Writer.WriteTypeAttribute(metaAluseksOlevadSyydistusPunktid.TypeQualifiedName.Namespace, metaAluseksOlevadSyydistusPunktid.TypeQualifiedName.Name);
                        metaAluseksOlevadSyydistusPunktid.NewSerializer(clazz.AluseksOlevadSyydistusPunktid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.TekeKL!=null) {
                Writer.WriteStartElement("TekeKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.TekeKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KatseajaAlgusKP!=null) {
                Writer.WriteStartElement("KatseajaAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.KatseajaAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AllutadaKaitumiskontrollile!=null) {
                Writer.WriteStartElement("AllutadaKaitumiskontrollile");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.AllutadaKaitumiskontrollile))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EelvangistusesViibitudPaevadeArv!=null) {
                Writer.WriteStartElement("EelvangistusesViibitudPaevadeArv");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "int");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInt(((int)(clazz.EelvangistusesViibitudPaevadeArv))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ArhiveerimiseKP!=null) {
                Writer.WriteStartElement("ArhiveerimiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.ArhiveerimiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OnArhiveeritud!=null) {
                Writer.WriteStartElement("OnArhiveeritud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.OnArhiveeritud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Toimingud!=null) {
                Writer.WriteStartElement("Toimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Toimingud.Count);
                for (int x = 0; ((clazz.Toimingud != null) 
                            && (x < clazz.Toimingud.Count)); x = (x + 1)) {
                    if (clazz.Toimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaToimingud = this.GetMetaData(clazz.Toimingud[x]);
                        Writer.WriteTypeAttribute(metaToimingud.TypeQualifiedName.Namespace, metaToimingud.TypeQualifiedName.Name);
                        metaToimingud.NewSerializer(clazz.Toimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AluseksOlevadSyydistusPunktidCSV!=null) {
                Writer.WriteStartElement("AluseksOlevadSyydistusPunktidCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.AluseksOlevadSyydistusPunktidCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TegelikKandmiseAlgusKP!=null) {
                Writer.WriteStartElement("TegelikKandmiseAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.TegelikKandmiseAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EnnetahtaegseVabanemiseAlgusKP!=null) {
                Writer.WriteStartElement("EnnetahtaegseVabanemiseAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.EnnetahtaegseVabanemiseAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KatseajaTegelikLoppKP!=null) {
                Writer.WriteStartElement("KatseajaTegelikLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.KatseajaTegelikLoppKP))).ToString());
                Writer.WriteEndElement();
            }
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
            if (Reader.LocalName=="TyypKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TyypKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("TyypKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlaLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlaLiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("AlaLiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldavPaevamaaradeArv") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldavPaevamaaradeArv = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("TaodeldavPaevamaaradeArv")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudPaevamaaradeArv") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudPaevamaaradeArv = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("MoistetudPaevamaaradeArv")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldavaidAastaid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldavaidAastaid = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("TaodeldavaidAastaid")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldavaidKuid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldavaidKuid = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("TaodeldavaidKuid")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldavaidPaevi") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldavaidPaevi = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("TaodeldavaidPaevi")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldavaidTunde") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldavaidTunde = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("TaodeldavaidTunde")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudAastaid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudAastaid = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("MoistetudAastaid")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudKuid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudKuid = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("MoistetudKuid")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudPaevi") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudPaevi = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("MoistetudPaevi")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudTunde") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudTunde = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("MoistetudTunde")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PohiKaristus") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaPohiKaristus = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISanktsioon>(Reader, "Sanktsioon", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.PohiKaristus = metaPohiKaristus.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISanktsioon>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("PohiKaristus");
                        metaPohiKaristus.NewSerializer(clazz.PohiKaristus).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldudKatseajaAastaid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldudKatseajaAastaid = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("TaodeldudKatseajaAastaid")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldudKatseajaKuid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldudKatseajaKuid = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("TaodeldudKatseajaKuid")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TaodeldudKatseajaPaevi") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TaodeldudKatseajaPaevi = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("TaodeldudKatseajaPaevi")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudKatseajaAastaid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudKatseajaAastaid = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("MoistetudKatseajaAastaid")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudKatseajaKuid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudKatseajaKuid = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("MoistetudKatseajaKuid")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MoistetudKatseajaPaevi") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MoistetudKatseajaPaevi = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("MoistetudKatseajaPaevi")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AluseksOlevadSeaduseSatted") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AluseksOlevadSeaduseSatted = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSate>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AluseksOlevadSeaduseSatted");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaAluseksOlevadSeaduseSatted = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSate>(Reader, "SeaduseSate", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSate item = metaAluseksOlevadSeaduseSatted.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSate>();
                                clazz.AluseksOlevadSeaduseSatted.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaAluseksOlevadSeaduseSatted.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.AluseksOlevadSeaduseSatted.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AluseksOlevadSyyteosyndmused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AluseksOlevadSyyteosyndmused = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AluseksOlevadSyyteosyndmused");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaAluseksOlevadSyyteosyndmused = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>(Reader, "Syyteosyndmus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus item = metaAluseksOlevadSyyteosyndmused.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>();
                                clazz.AluseksOlevadSyyteosyndmused.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaAluseksOlevadSyyteosyndmused.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.AluseksOlevadSyyteosyndmused.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AluseksOlevadSyydistusPunktid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AluseksOlevadSyydistusPunktid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyydistusPunkt>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AluseksOlevadSyydistusPunktid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaAluseksOlevadSyydistusPunktid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyydistusPunkt>(Reader, "SyydistusPunkt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyydistusPunkt item = metaAluseksOlevadSyydistusPunktid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyydistusPunkt>();
                                clazz.AluseksOlevadSyydistusPunktid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaAluseksOlevadSyydistusPunktid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.AluseksOlevadSyydistusPunktid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TekeKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TekeKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("TekeKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KatseajaAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KatseajaAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("KatseajaAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AllutadaKaitumiskontrollile") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AllutadaKaitumiskontrollile = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("AllutadaKaitumiskontrollile")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EelvangistusesViibitudPaevadeArv") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EelvangistusesViibitudPaevadeArv = new global::Xtee.Core.Schema.XsdInt(Reader.ReadElementString("EelvangistusesViibitudPaevadeArv")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ArhiveerimiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ArhiveerimiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("ArhiveerimiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="OnArhiveeritud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.OnArhiveeritud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("OnArhiveeritud")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Toimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Toimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Toimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.Toimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Toimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AluseksOlevadSyydistusPunktidCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AluseksOlevadSyydistusPunktidCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("AluseksOlevadSyydistusPunktidCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TegelikKandmiseAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TegelikKandmiseAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("TegelikKandmiseAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EnnetahtaegseVabanemiseAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EnnetahtaegseVabanemiseAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("EnnetahtaegseVabanemiseAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KatseajaTegelikLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KatseajaTegelikLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("KatseajaTegelikLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
        }
    }
}
